package com.wjm.blog.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wjm.blog.system.entity.SysRoleEntity;
import com.wjm.blog.system.vo.request.SysRoleSaveVo;
import com.wjm.blog.system.vo.request.SysRoleQueryVo;
import com.wjm.blog.system.vo.response.SysRoleDetailVo;
import com.wjm.blog.system.vo.response.SysRoleListVo;

import java.util.List;

/**
 * 角色信息表Service接口类
 *
 * @author wjm
 * @date 2023-10-18T14:34:39.274
 * @version 1.0
 */
public interface ISysRoleService extends IService<SysRoleEntity> {

    /**
     * 角色信息表分页查询
     *
     * @param queryVo 查询接口
     * @return 角色信息表分页列表
     * @throws Exception 异常信息
     * @author wjm
     * @version 1.0
     * @date 2023-10-18T14:34:39.274
     */
    IPage<SysRoleListVo> page(SysRoleQueryVo queryVo) throws Exception;

    /**
     * 角色信息表列表查询
     *
     * @param queryVo 查询接口
     * @return 角色信息表列表
     * @throws Exception 异常信息
     * @author wjm
     * @version 1.0
     * @date 2023-10-18T14:34:39.274
     */
    List<SysRoleListVo> list(SysRoleQueryVo queryVo) throws Exception;

    /**
     * 角色信息表详情查询
     *
     * @param id 主键ID
     * @return 角色信息表详情
     * @throws Exception 异常信息
     * @author wjm
     * @version 1.0
     * @date 2023-10-18T14:34:39.274
     */
    SysRoleDetailVo get(Long id) throws Exception;

    /**
     * 角色信息表新增
     *
     * @param saveVo 角色信息表保存VO
     * @return 操作结果
     * @throws Exception 异常信息
     * @author wjm
     * @version 1.0
     * @date 2023-10-18T14:34:39.274
     */
    boolean insert(SysRoleSaveVo saveVo) throws Exception;

    /**
     * 角色信息表修改
     *
     * @param id 主键ID
     * @param saveVo 角色信息表保存VO
     * @return 操作结果
     * @throws Exception 异常信息
     * @author wjm
     * @version 1.0
     * @date 2023-10-18T14:34:39.274
     */
    boolean update(Long id, SysRoleSaveVo saveVo) throws Exception;

    /**
     * 角色信息表作废(批量)
     *
     * @param ids 主键ID集合
     * @return 操作结果
     * @throws Exception 异常信息
     * @author wjm
     * @version 1.0
     * @date 2023-10-18T14:34:39.274
     */
    boolean invalid(List<Long> ids) throws Exception;
}
